/* 
 *      OperationToken.java
 *
 *      Copyright 2008 Pablo Nicolas Diaz Bilotto <pablonicolas.diaz@gmail.com>
 *
 *      This program is free software; you can redistribute it and/or modify
 *      it under the terms of the GNU General Public License as published by
 *      the Free Software Foundation; either version 2 of the License, or
 *      (at your option) any later version.
 *
 *      This program is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *      GNU General Public License for more details.
 *
 *      You should have received a copy of the GNU General Public License
 *      along with this program; if not, write to the Free Software
 *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 *      MA 02110-1301, USA.
 */

package ilanguage.iltokens.operations;

import ilanguage.iltokens.IL_SSA;
import ilanguage.iltokens.SequenciableSSA;


/**
 * The Class OperationToken.
 */
public abstract class OperationIL_SSA extends SequenciableSSA {


	/**
	 * Discartable.
	 * 
	 * @param arg the arg
	 * 
	 * @return true, if successful
	 */
	protected static boolean discartable(final IL_SSA arg) {
		return arg != null && arg.isDiscartable();
	}

	/**
	 * Instantiates a new operation token.
	 */
	public OperationIL_SSA() {
		super();
	}

	/**
	 * Gets the operation name.
	 * 
	 * @return the operation name
	 */
	public abstract String getOperationName();

	/*
	 * (non-Javadoc)
	 *
	 * @see ILanguage.SequenciableToken#GetPrefix()
	 */
	public String getPrefix() {
		return super.getPrefix() + "=(" + getOperationName();
	}

	/*
	 * (non-Javadoc)
	 *
	 * @see ILanguage.SequenciableToken#toString()
	 */
	public String toString() {
		return this.getPrefix() + ")";
	}

}